/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * ToernooiInschrijving.java
 *
 * Created on Jan 9, 2012, 10:56:55 AM
 */
package view;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import model.Speler;
import model.ToernooiInschrijving;
import model.Toernooi;

    /**
 *
 * @author Roalnd
 */
public class ToernooiInschrijvingen extends javax.swing.JFrame {
    protected DefaultTableModel tableModel;
    protected Toernooi toernooi = null;
    /** Creates new form ToernooiInschrijving */
    public ToernooiInschrijvingen() {
        initComponents();
    
        
        
        Toernooi[] toernooien = Toernooi.getToernooien();
        for (int i = 0; i < toernooien.length; i++) {
            comboField.addItem(toernooien[i]);
        }
    tableModel = new DefaultTableModel(){
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        };
        jTable1.setModel(tableModel);
        tableModel.addColumn("Inschrijving ID");
        tableModel.addColumn("Toernooi ID");
        tableModel.addColumn("Speler");
        tableModel.addColumn("Speler ID");
        tableModel.addColumn("Betaald"); 
        
       // addInschrijvingToTable();
    }
/** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        verwijderenButton = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        vernieuwButton = new javax.swing.JButton();
        inschrijvingButton = new javax.swing.JButton();
        comboField = new javax.swing.JComboBox();
        selectButton = new javax.swing.JButton();
        nietBetaaldToggle = new javax.swing.JToggleButton();
        wijzigButton = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Speler Inschrijven Voor Toernooi");

        verwijderenButton.setText("Speler uitschrijven");
        verwijderenButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                verwijderenButtonActionPerformed(evt);
            }
        });

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        vernieuwButton.setText("vernieuwen");
        vernieuwButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vernieuwButtonActionPerformed(evt);
            }
        });

        inschrijvingButton.setText("Speler Inschrijven");
        inschrijvingButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                inschrijvingButtonActionPerformed(evt);
            }
        });

        comboField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboFieldActionPerformed(evt);
            }
        });

        selectButton.setText("Selecteer");
        selectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectButtonActionPerformed(evt);
            }
        });

        nietBetaaldToggle.setText("Toon spelers die niet betaald hebben");
        nietBetaaldToggle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nietBetaaldToggleActionPerformed(evt);
            }
        });

        wijzigButton.setText("Wijzigen");
        wijzigButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                wijzigButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(vernieuwButton)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 598, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(inschrijvingButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(wijzigButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(nietBetaaldToggle)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(verwijderenButton))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(comboField, javax.swing.GroupLayout.PREFERRED_SIZE, 296, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 225, Short.MAX_VALUE)
                        .addComponent(selectButton)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(9, 9, 9)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(comboField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(selectButton))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(inschrijvingButton)
                    .addComponent(verwijderenButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(nietBetaaldToggle)
                    .addComponent(wijzigButton))
                .addGap(10, 10, 10)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(vernieuwButton)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void inschrijvingButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_inschrijvingButtonActionPerformed
// TODO add your handling code here:
    new InschrijvingToernooi().setVisible(true);
}//GEN-LAST:event_inschrijvingButtonActionPerformed

private void vernieuwButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vernieuwButtonActionPerformed
// TODO add your handling code here:
        fillTable();
}//GEN-LAST:event_vernieuwButtonActionPerformed

private void verwijderenButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_verwijderenButtonActionPerformed
// TODO add your handling code here:
ToernooiInschrijving inschrijving = new ToernooiInschrijving();
String codeString = JOptionPane.showInputDialog(null, "Voer het Spelerid in", "");
int nr = Integer.parseInt(codeString);
inschrijving.setSpeler(Speler.getSpeler(nr));

if (nr>0) {
    int Confirmdelete = JOptionPane.showConfirmDialog(null, "Weet u zeker dat u de Speler met" + nr + " wilt verwijderen?");
        if (Confirmdelete == JOptionPane.YES_OPTION) {


                if (inschrijving.delete() == true) {
                    JOptionPane.showMessageDialog(null, "De Speler is verwijderd");
                } 
                else {
                    JOptionPane.showMessageDialog(null, "De Speler is niet verwijderd");
                }
            } 
            else {
                JOptionPane.showMessageDialog(null, "De Speler is niet verwijderd");
            }
}
}//GEN-LAST:event_verwijderenButtonActionPerformed

private void selectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectButtonActionPerformed
    // TODO add your handling code here:
    toernooi = (Toernooi) comboField.getSelectedItem();
        this.fillTable();
}//GEN-LAST:event_selectButtonActionPerformed

private void comboFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboFieldActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_comboFieldActionPerformed

private void nietBetaaldToggleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nietBetaaldToggleActionPerformed
// TODO add your handling code here:
     toernooi = (Toernooi) comboField.getSelectedItem();
        this.fillTable();
}//GEN-LAST:event_nietBetaaldToggleActionPerformed

private void wijzigButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_wijzigButtonActionPerformed
// TODO add your handling code here:
    new ToernooiSpelerWijzigen().setVisible(true);
}//GEN-LAST:event_wijzigButtonActionPerformed

    /**
     * @param args the command line arguments
     */
        
       
         private void fillTable() {
        if (nietBetaaldToggle.isSelected()){
            tableModel.setRowCount(0);
        ToernooiInschrijving[] inschrijvingen = ToernooiInschrijving.getToernooiInschrijvingen(toernooi);
        ToernooiInschrijving inschrijving;
        for (int i = 0; i < inschrijvingen.length; i++) {
            inschrijving = inschrijvingen[i];
            
            String heeftBetaaldJaNee = "Nee";
            if(inschrijving.getBetaald() == false){// kan weg zodra gecontroleerd is of het werkt
            tableModel.addRow(new Object[]{inschrijving.getInschrijvingID(), inschrijving.getToernooi(), inschrijving.getSpeler(), inschrijving.getSpeler().getSpelerid(), heeftBetaaldJaNee});
        }
        }
        }
        else {
        tableModel.setRowCount(0);
        ToernooiInschrijving[] inschrijvingen = ToernooiInschrijving.getToernooiInschrijvingen(toernooi);
        ToernooiInschrijving inschrijving;
        for (int i = 0; i < inschrijvingen.length; i++) {
            inschrijving = inschrijvingen[i];
            
            String heeftBetaaldJaNee = "Nee";
            if(inschrijving.getBetaald() == true) heeftBetaaldJaNee = "Ja";
            tableModel.addRow(new Object[]{inschrijving.getInschrijvingID(), inschrijving.getToernooi(), inschrijving.getSpeler(),inschrijving.getSpeler().getSpelerid(), heeftBetaaldJaNee});
        }
        } 
        }
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(ToernooiInschrijving.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(ToernooiInschrijving.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(ToernooiInschrijving.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(ToernooiInschrijving.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new ToernooiInschrijvingen().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JComboBox comboField;
    private javax.swing.JButton inschrijvingButton;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JToggleButton nietBetaaldToggle;
    private javax.swing.JButton selectButton;
    private javax.swing.JButton vernieuwButton;
    private javax.swing.JButton verwijderenButton;
    private javax.swing.JButton wijzigButton;
    // End of variables declaration//GEN-END:variables
}
